home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / emulator / bsvc-1.000 / bsvc-1 / bsvc-1.0.4 / src / SimHector / devices / DeviceRegistry.cxx next >
C/C++ Source or Header  |  1995-07-26  |  2KB  |  56 lines

  1. /////////////////////////////////////////////////////////////////////////////// //
  2. //
  3. // DeviceRegistry.cxx
  4. //
  5. //   This class keeps up with a list of all of the availible devices and
  6. // allocates them.  It's derived from the BasicDeviceRegistry
  7. //
  8. // By: Bradford W. Mott
  9. // October 30,1993
  10. //
  11. ///////////////////////////////////////////////////////////////////////////////
  12.  
  13. #include <iostream.h>
  14. #include "DeviceRegistry.hxx"
  15. #include "RAM.hxx"
  16.  
  17. ///////////////////////////////////////////////////////////////////////////////
  18. // Array of device information (name, description, tcl script)
  19. ///////////////////////////////////////////////////////////////////////////////
  20. const DeviceInformation DeviceRegistry::device_info[] = {
  21.   {"RAM",
  22.    "Random Access Memory",          
  23.    #include "RAM.scr"
  24.   }
  25. };
  26.  
  27. ///////////////////////////////////////////////////////////////////////////////
  28. // The Constructor
  29. ///////////////////////////////////////////////////////////////////////////////
  30. DeviceRegistry::DeviceRegistry()
  31.     : BasicDeviceRegistry(device_info,
  32.           sizeof(device_info)/sizeof(DeviceInformation))
  33. {}
  34.  
  35. ///////////////////////////////////////////////////////////////////////////////
  36. // Create a device with the given name (return 1=OK,0=ERROR)
  37. ///////////////////////////////////////////////////////////////////////////////
  38. int DeviceRegistry::Create(String& name, String& args, BasicCPU *cpu,
  39.                            BasicDevice* &device) 
  40. {
  41.   if (name=="RAM")
  42.     device=new RAM(args, cpu);
  43.   else
  44.     return(0);
  45.  
  46.   // If the device's error message is not empty then return error
  47.   if(device->GetErrorMessage()!="")
  48.   {
  49.     delete device;
  50.     return(0);
  51.   }
  52.  
  53.   return(1);
  54. }
  55.  
  56.